1. Field of the Invention
The disclosed embodiments generally relate to techniques for analyzing performance in computer systems. More specifically, the disclosed embodiments relate to a technique for correlating hypervisor data for a virtual machine with associated operating system data.
2. Related Art
Organizations are increasingly relying on cloud-based computing systems to perform large-scale computational tasks. Such cloud-based computing systems are typically operated by hosting companies that maintain a sizable computational infrastructure, often comprising thousands of servers sited in geographically distributed data centers. Customers typically buy or lease computational resources from these hosting companies. The hosting companies in turn provision computational resources according to the customers' requirements and then enable the customers to access these resources.
Cloud-based computing systems often provide a virtualized computing environment, wherein tasks run on “virtual machines” that execute on underlying physical host systems. Such virtualized computing environments enable computational tasks to be easily moved among host systems to facilitate load balancing and fault tolerance. However, they also complicate the process of diagnosing and resolving performance problems because such performance problems can arise: at the virtual-machine level; at the host-system level; and also between virtual processes that run inside the virtual machines.
Existing performance-monitoring tools for virtual machines typically operate by gathering virtual-machine performance parameters from a hypervisor, which is responsible for instantiating and executing virtual machines on an underlying host system. For example, virtual-machine performance parameters can specify processor utilization or memory utilization parameters for virtual machines that are executing on the hypervisor. However, these virtual-machine performance parameters do not tell the whole story. To determine the root cause of a performance problem, it is often advantageous to analyze performance parameters for virtual processes that run inside operating systems within the virtual machines.
Unfortunately, such virtual-process performance parameters cannot be obtained from the hypervisor. It is typically necessary for an administrator to obtain such virtual-process performance parameters from another diagnostic tool that gathers process-level performance parameters from operating systems that execute within the virtual machines. Note that these operating systems keep track of different types of performance data within the virtual machine, including performance parameters for virtual processes that run within the virtual machines. Even when such process-level performance parameters can be gathered, it is difficult to correlate these process-level performance parameters with virtual-machine performance parameters obtained from a hypervisor.
Hence, what is needed is a system that facilitates efficiently analyzing performance parameters for virtual machines together with performance parameters for associated virtual processes without the drawbacks of existing techniques.